// vite.config.ts
import { fileURLToPath, URL } from "node:url";
import { createSvgIconsPlugin } from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/vite-plugin-svg-icons/dist/index.mjs";
import { defineConfig } from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/vite/dist/node/index.js";
import vue from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import AutoImport from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/unplugin-auto-import/dist/vite.js";
import Icons from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/unplugin-icons/dist/vite.js";
import IconsResolver from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/unplugin-icons/dist/resolver.js";
import Components from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/unplugin-vue-components/dist/vite.js";
import { ElementPlusResolver } from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/unplugin-vue-components/dist/resolvers.js";
import path from "path";
import dts from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/vite-plugin-dts/dist/index.mjs";
import federation from "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/node_modules/@originjs/vite-plugin-federation/dist/index.mjs";
var __vite_injected_original_dirname = "D:\\liuhuairiWorkSpace\\CommonLib\\Front\\mctp-front\\mctp";
var __vite_injected_original_import_meta_url = "file:///D:/liuhuairiWorkSpace/CommonLib/Front/mctp-front/mctp/vite.config.ts";
var vite_config_default = defineConfig({
  plugins: [
    vue(),
    federation({
      name: "hostModule",
      remotes: {
        taskModule: "http://localhost:3001/assets/moduleEntry.js",
        createTaskModule: "http://localhost:3002/assets/moduleEntry.js",
        testModule: "http://localhost:3003/assets/moduleEntry.js",
        deviceModule: "http://localhost:3004/assets/moduleEntry.js",
        calibrationModule: "http://localhost:3005/assets/moduleEntry.js",
        userModule: "http://localhost:3006/assets/moduleEntry.js",
        loginModule: "http://localhost:3007/assets/moduleEntry.js"
      },
      filename: "hostEntry.js",
      exposes: {
        "./hostCom": "./src/components/index.ts"
      },
      shared: {
        vue: {
          import: true,
          shareScope: "default",
          version: "^3.4.21"
        },
        pinia: {
          import: true,
          shareScope: "default",
          version: "^2.1.7"
        },
        "element-plus": {
          import: true,
          shareScope: "default",
          version: "^2.8.8"
        },
        "@element-plus/icons-vue": {
          import: true,
          shareScope: "default"
        }
      }
    }),
    dts({
      include: ["src/components/**/*.ts", "src/components/**/*.d.ts", "src/components/**/*.vue"],
      // 必须包含源码文件
      outDir: "dist",
      // 输出目录（默认即 dist）
      staticImport: true,
      // 推荐启用
      insertTypesEntry: true,
      // 自动生成类型入口
      // 清理输出目录，避免旧文件残留
      cleanVueFileName: true,
      copyDtsFiles: true
    }),
    createSvgIconsPlugin({
      // 指定需要缓存的图标文件夹
      iconDirs: [path.resolve(process.cwd(), "src/assets/svg")],
      // 指定symbolId格式
      symbolId: "i-[dir]-[name]"
    }),
    AutoImport({
      resolvers: [
        IconsResolver({
          prefix: "Icon"
        }),
        ElementPlusResolver()
      ]
    }),
    Components({
      resolvers: [
        IconsResolver({
          enabledCollections: ["ep"]
        }),
        ElementPlusResolver()
      ]
    }),
    Icons({
      autoInstall: true,
      compiler: "vue3"
    })
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url))
    }
  },
  server: {
    port: 3e3,
    fs: {
      // 允许从文件系统任意位置导入模块
      allow: ["D:\\modules", "C:\\", "/"]
    }
  },
  optimizeDeps: {
    // 明确预构建平台核心依赖（Vue、Pinia 等），插件加载时直接复用预构建结果
    include: [
      // Vue 生态
      "vue",
      "vue-router",
      "vue-i18n",
      "vue-demi",
      "vue-virtual-scroller",
      "vuedraggable",
      // 状态管理
      "pinia",
      // UI 组件库
      "element-plus",
      "@element-plus/icons-vue",
      // 工具库
      "lodash",
      "moment",
      "js-cookie",
      // 建议补充安装后加入
      "axios",
      "better-mock",
      "echarts",
      "split.js",
      "uuid",
      "@microsoft/signalr",
      // 自定义组件库（平台核心提供能力）
      "@xc-components/xc-form",
      "@xc-components/xc-table",
      // 图标相关（Element Plus 图标）
      "@iconify-json/ep"
      // '@/modules/mctp-modules-task/mctp-modules-task.js',
    ],
    force: true
  },
  build: {
    // outDir: path.resolve(__dirname, '../mctp-modules/mctp-modules-template/src/dist'),
    emptyOutDir: true,
    outDir: path.resolve(__vite_injected_original_dirname, "./dist"),
    target: ["es2022", "edge89", "firefox89", "chrome89", "safari15"],
    rollupOptions: {
      external: [],
      // 空数组表示不外部化任何依赖（全部打包）
      output: {
        // 如果依赖需要全局变量（可选）
        globals: {},
        manualChunks: void 0,
        exports: "named",
        // 确保模块导出规范
        interop: "auto",
        // 保留模块结构z
        preserveModules: false
      }
    },
    // 优化构建输出
    minify: true,
    sourcemap: false,
    // 复制静态资源（包括插件模块）
    copyPublicDir: true
  }
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxsaXVodWFpcmlXb3JrU3BhY2VcXFxcQ29tbW9uTGliXFxcXEZyb250XFxcXG1jdHAtZnJvbnRcXFxcbWN0cFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcbGl1aHVhaXJpV29ya1NwYWNlXFxcXENvbW1vbkxpYlxcXFxGcm9udFxcXFxtY3RwLWZyb250XFxcXG1jdHBcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L2xpdWh1YWlyaVdvcmtTcGFjZS9Db21tb25MaWIvRnJvbnQvbWN0cC1mcm9udC9tY3RwL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjcmVhdGVTdmdJY29uc1BsdWdpbiB9IGZyb20gXCJ2aXRlLXBsdWdpbi1zdmctaWNvbnNcIjtcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnO1xuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSc7XG5pbXBvcnQgSWNvbnMgZnJvbSBcInVucGx1Z2luLWljb25zL3ZpdGVcIjtcbmltcG9ydCBJY29uc1Jlc29sdmVyIGZyb20gXCJ1bnBsdWdpbi1pY29ucy9yZXNvbHZlclwiO1xuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSc7XG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGR0cyBmcm9tICd2aXRlLXBsdWdpbi1kdHMnO1xuaW1wb3J0IGZlZGVyYXRpb24gZnJvbSAnQG9yaWdpbmpzL3ZpdGUtcGx1Z2luLWZlZGVyYXRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICBwbHVnaW5zOiBbXG4gICAgdnVlKCksXG4gICAgZmVkZXJhdGlvbih7XG4gICAgICBuYW1lOiAnaG9zdE1vZHVsZScsXG4gICAgICByZW1vdGVzOiB7XG4gICAgICAgIHRhc2tNb2R1bGU6ICdodHRwOi8vbG9jYWxob3N0OjMwMDEvYXNzZXRzL21vZHVsZUVudHJ5LmpzJyxcbiAgICAgICAgY3JlYXRlVGFza01vZHVsZTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMi9hc3NldHMvbW9kdWxlRW50cnkuanMnLFxuICAgICAgICB0ZXN0TW9kdWxlOiAnaHR0cDovL2xvY2FsaG9zdDozMDAzL2Fzc2V0cy9tb2R1bGVFbnRyeS5qcycsXG4gICAgICAgIGRldmljZU1vZHVsZTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwNC9hc3NldHMvbW9kdWxlRW50cnkuanMnLFxuICAgICAgICBjYWxpYnJhdGlvbk1vZHVsZTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwNS9hc3NldHMvbW9kdWxlRW50cnkuanMnLFxuICAgICAgICB1c2VyTW9kdWxlOiAnaHR0cDovL2xvY2FsaG9zdDozMDA2L2Fzc2V0cy9tb2R1bGVFbnRyeS5qcycsXG4gICAgICAgIGxvZ2luTW9kdWxlOiAnaHR0cDovL2xvY2FsaG9zdDozMDA3L2Fzc2V0cy9tb2R1bGVFbnRyeS5qcycsXG4gICAgICB9LFxuICAgICAgZmlsZW5hbWU6ICdob3N0RW50cnkuanMnLFxuICAgICAgZXhwb3Nlczoge1xuICAgICAgICAnLi9ob3N0Q29tJzogJy4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHMnXG4gICAgICB9LFxuICAgICAgc2hhcmVkOiB7XG4gICAgICAgIHZ1ZToge1xuICAgICAgICAgIGltcG9ydDogdHJ1ZSxcbiAgICAgICAgICBzaGFyZVNjb3BlOiAnZGVmYXVsdCcsXG4gICAgICAgICAgdmVyc2lvbjogJ14zLjQuMjEnXG4gICAgICAgIH0sXG4gICAgICAgIHBpbmlhOiB7XG4gICAgICAgICAgaW1wb3J0OiB0cnVlLFxuICAgICAgICAgIHNoYXJlU2NvcGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICB2ZXJzaW9uOiAnXjIuMS43J1xuICAgICAgICB9LFxuICAgICAgICAnZWxlbWVudC1wbHVzJzoge1xuICAgICAgICAgIGltcG9ydDogdHJ1ZSxcbiAgICAgICAgICBzaGFyZVNjb3BlOiAnZGVmYXVsdCcsXG4gICAgICAgICAgdmVyc2lvbjogJ14yLjguOCdcbiAgICAgICAgfSxcbiAgICAgICAgJ0BlbGVtZW50LXBsdXMvaWNvbnMtdnVlJzoge1xuICAgICAgICAgIGltcG9ydDogdHJ1ZSxcbiAgICAgICAgICBzaGFyZVNjb3BlOiAnZGVmYXVsdCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pLFxuICAgIGR0cyh7XG4gICAgICBpbmNsdWRlOiBbJ3NyYy9jb21wb25lbnRzLyoqLyoudHMnLCAnc3JjL2NvbXBvbmVudHMvKiovKi5kLnRzJywgJ3NyYy9jb21wb25lbnRzLyoqLyoudnVlJ10sIC8vIFx1NUZDNVx1OTg3Qlx1NTMwNVx1NTQyQlx1NkU5MFx1NzgwMVx1NjU4N1x1NEVGNlxuICAgICAgb3V0RGlyOiAnZGlzdCcsIC8vIFx1OEY5M1x1NTFGQVx1NzZFRVx1NUY1NVx1RkYwOFx1OUVEOFx1OEJBNFx1NTM3MyBkaXN0XHVGRjA5XG4gICAgICBzdGF0aWNJbXBvcnQ6IHRydWUsIC8vIFx1NjNBOFx1ODM1MFx1NTQyRlx1NzUyOFxuICAgICAgaW5zZXJ0VHlwZXNFbnRyeTogdHJ1ZSwgLy8gXHU4MUVBXHU1MkE4XHU3NTFGXHU2MjEwXHU3QzdCXHU1NzhCXHU1MTY1XHU1M0UzXG4gICAgICAvLyBcdTZFMDVcdTc0MDZcdThGOTNcdTUxRkFcdTc2RUVcdTVGNTVcdUZGMENcdTkwN0ZcdTUxNERcdTY1RTdcdTY1ODdcdTRFRjZcdTZCOEJcdTc1NTlcbiAgICAgIGNsZWFuVnVlRmlsZU5hbWU6IHRydWUsXG4gICAgICBjb3B5RHRzRmlsZXM6IHRydWVcbiAgICB9KSxcbiAgICBjcmVhdGVTdmdJY29uc1BsdWdpbih7XG4gICAgICAvLyBcdTYzMDdcdTVCOUFcdTk3MDBcdTg5ODFcdTdGMTNcdTVCNThcdTc2ODRcdTU2RkVcdTY4MDdcdTY1ODdcdTRFRjZcdTU5MzlcbiAgICAgIGljb25EaXJzOiBbcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIFwic3JjL2Fzc2V0cy9zdmdcIildLFxuICAgICAgLy8gXHU2MzA3XHU1QjlBc3ltYm9sSWRcdTY4M0NcdTVGMEZcbiAgICAgIHN5bWJvbElkOiBcImktW2Rpcl0tW25hbWVdXCJcbiAgICB9KSxcbiAgICBBdXRvSW1wb3J0KHtcbiAgICAgIHJlc29sdmVyczpcbiAgICAgICAgW1xuICAgICAgICAgIEljb25zUmVzb2x2ZXIoe1xuICAgICAgICAgICAgcHJlZml4OiBcIkljb25cIlxuICAgICAgICAgIH0pLFxuICAgICAgICAgIEVsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgfSksXG4gICAgQ29tcG9uZW50cyh7XG4gICAgICByZXNvbHZlcnM6IFtcbiAgICAgICAgSWNvbnNSZXNvbHZlcih7XG4gICAgICAgICAgZW5hYmxlZENvbGxlY3Rpb25zOiBbXCJlcFwiXVxuICAgICAgICB9KSxcbiAgICAgICAgRWxlbWVudFBsdXNSZXNvbHZlcigpXG4gICAgICBdLFxuICAgIH0pLFxuICAgIEljb25zKHtcbiAgICAgIGF1dG9JbnN0YWxsOiB0cnVlLFxuICAgICAgY29tcGlsZXI6IFwidnVlM1wiXG4gICAgfSlcbiAgXSxcbiAgcmVzb2x2ZToge1xuICAgIGFsaWFzOiB7XG4gICAgICBcIkBcIjogZmlsZVVSTFRvUGF0aChuZXcgVVJMKFwiLi9zcmNcIiwgaW1wb3J0Lm1ldGEudXJsKSksXG4gICAgfSxcbiAgfSxcbiAgc2VydmVyOiB7XG4gICAgcG9ydDogMzAwMCxcbiAgICBmczoge1xuICAgICAgLy8gXHU1MTQxXHU4QkI4XHU0RUNFXHU2NTg3XHU0RUY2XHU3Q0ZCXHU3RURGXHU0RUZCXHU2MTBGXHU0RjREXHU3RjZFXHU1QkZDXHU1MTY1XHU2QTIxXHU1NzU3XG4gICAgICBhbGxvdzogWydEOlxcXFxtb2R1bGVzJywgJ0M6XFxcXCcsICcvJ11cbiAgICB9XG4gIH0sXG4gIG9wdGltaXplRGVwczoge1xuICAgIC8vIFx1NjYwRVx1Nzg2RVx1OTg4NFx1Njc4NFx1NUVGQVx1NUU3M1x1NTNGMFx1NjgzOFx1NUZDM1x1NEY5RFx1OEQ1Nlx1RkYwOFZ1ZVx1MzAwMVBpbmlhIFx1N0I0OVx1RkYwOVx1RkYwQ1x1NjNEMlx1NEVGNlx1NTJBMFx1OEY3RFx1NjVGNlx1NzZGNFx1NjNBNVx1NTkwRFx1NzUyOFx1OTg4NFx1Njc4NFx1NUVGQVx1N0VEM1x1Njc5Q1xuICAgIGluY2x1ZGU6IFtcbiAgICAgIC8vIFZ1ZSBcdTc1MUZcdTYwMDFcbiAgICAgICd2dWUnLFxuICAgICAgJ3Z1ZS1yb3V0ZXInLFxuICAgICAgJ3Z1ZS1pMThuJyxcbiAgICAgICd2dWUtZGVtaScsXG4gICAgICAndnVlLXZpcnR1YWwtc2Nyb2xsZXInLFxuICAgICAgJ3Z1ZWRyYWdnYWJsZScsXG4gICAgICAvLyBcdTcyQjZcdTYwMDFcdTdCQTFcdTc0MDZcbiAgICAgICdwaW5pYScsXG4gICAgICAvLyBVSSBcdTdFQzRcdTRFRjZcdTVFOTNcbiAgICAgICdlbGVtZW50LXBsdXMnLFxuICAgICAgJ0BlbGVtZW50LXBsdXMvaWNvbnMtdnVlJyxcbiAgICAgIC8vIFx1NURFNVx1NTE3N1x1NUU5M1xuICAgICAgJ2xvZGFzaCcsXG4gICAgICAnbW9tZW50JyxcbiAgICAgICdqcy1jb29raWUnLCAvLyBcdTVFRkFcdThCQUVcdTg4NjVcdTUxNDVcdTVCODlcdTg4QzVcdTU0MEVcdTUyQTBcdTUxNjVcbiAgICAgICdheGlvcycsXG4gICAgICAnYmV0dGVyLW1vY2snLFxuICAgICAgJ2VjaGFydHMnLFxuICAgICAgJ3NwbGl0LmpzJyxcbiAgICAgICd1dWlkJyxcbiAgICAgICdAbWljcm9zb2Z0L3NpZ25hbHInLFxuICAgICAgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU3RUM0XHU0RUY2XHU1RTkzXHVGRjA4XHU1RTczXHU1M0YwXHU2ODM4XHU1RkMzXHU2M0QwXHU0RjlCXHU4MEZEXHU1MjlCXHVGRjA5XG4gICAgICAnQHhjLWNvbXBvbmVudHMveGMtZm9ybScsXG4gICAgICAnQHhjLWNvbXBvbmVudHMveGMtdGFibGUnLFxuICAgICAgLy8gXHU1NkZFXHU2ODA3XHU3NkY4XHU1MTczXHVGRjA4RWxlbWVudCBQbHVzIFx1NTZGRVx1NjgwN1x1RkYwOVxuICAgICAgJ0BpY29uaWZ5LWpzb24vZXAnLFxuICAgICAgLy8gJ0AvbW9kdWxlcy9tY3RwLW1vZHVsZXMtdGFzay9tY3RwLW1vZHVsZXMtdGFzay5qcycsXG4gICAgXSxcbiAgICBmb3JjZTogdHJ1ZSxcbiAgfSxcbiAgYnVpbGQ6IHtcbiAgICAvLyBvdXREaXI6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi9tY3RwLW1vZHVsZXMvbWN0cC1tb2R1bGVzLXRlbXBsYXRlL3NyYy9kaXN0JyksXG4gICAgZW1wdHlPdXREaXI6IHRydWUsXG4gICAgb3V0RGlyOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9kaXN0JyksXG4gICAgdGFyZ2V0OiBbJ2VzMjAyMicsICdlZGdlODknLCAnZmlyZWZveDg5JywgJ2Nocm9tZTg5JywgJ3NhZmFyaTE1J10sXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgZXh0ZXJuYWw6IFtdLCAgICAgICAgICAgICAgIC8vIFx1N0E3QVx1NjU3MFx1N0VDNFx1ODg2OFx1NzkzQVx1NEUwRFx1NTkxNlx1OTBFOFx1NTMxNlx1NEVGQlx1NEY1NVx1NEY5RFx1OEQ1Nlx1RkYwOFx1NTE2OFx1OTBFOFx1NjI1M1x1NTMwNVx1RkYwOVxuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIC8vIFx1NTk4Mlx1Njc5Q1x1NEY5RFx1OEQ1Nlx1OTcwMFx1ODk4MVx1NTE2OFx1NUM0MFx1NTNEOFx1OTFDRlx1RkYwOFx1NTNFRlx1OTAwOVx1RkYwOVxuICAgICAgICBnbG9iYWxzOiB7fSxcbiAgICAgICAgbWFudWFsQ2h1bmtzOiB1bmRlZmluZWQsXG4gICAgICAgIGV4cG9ydHM6ICduYW1lZCcsXG4gICAgICAgIC8vIFx1Nzg2RVx1NEZERFx1NkEyMVx1NTc1N1x1NUJGQ1x1NTFGQVx1ODlDNFx1ODMwM1xuICAgICAgICBpbnRlcm9wOiAnYXV0bycsXG4gICAgICAgIC8vIFx1NEZERFx1NzU1OVx1NkEyMVx1NTc1N1x1N0VEM1x1Njc4NHpcbiAgICAgICAgcHJlc2VydmVNb2R1bGVzOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIFx1NEYxOFx1NTMxNlx1Njc4NFx1NUVGQVx1OEY5M1x1NTFGQVxuICAgIG1pbmlmeTogdHJ1ZSxcbiAgICBzb3VyY2VtYXA6IGZhbHNlLFxuICAgIC8vIFx1NTkwRFx1NTIzNlx1OTc1OVx1NjAwMVx1OEQ0NFx1NkU5MFx1RkYwOFx1NTMwNVx1NjJFQ1x1NjNEMlx1NEVGNlx1NkEyMVx1NTc1N1x1RkYwOVxuICAgIGNvcHlQdWJsaWNEaXI6IHRydWUsXG4gIH0sXG59KTsiXSwKICAibWFwcGluZ3MiOiAiO0FBQTZWLFNBQVMsZUFBZSxXQUFXO0FBQ2hZLFNBQVMsNEJBQTRCO0FBQ3JDLFNBQVMsb0JBQW9CO0FBQzdCLE9BQU8sU0FBUztBQUNoQixPQUFPLGdCQUFnQjtBQUN2QixPQUFPLFdBQVc7QUFDbEIsT0FBTyxtQkFBbUI7QUFDMUIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUywyQkFBMkI7QUFDcEMsT0FBTyxVQUFVO0FBQ2pCLE9BQU8sU0FBUztBQUNoQixPQUFPLGdCQUFnQjtBQVh2QixJQUFNLG1DQUFtQztBQUFvTCxJQUFNLDJDQUEyQztBQWE5USxJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FB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
